package com.zbkj.crmeb.enums;

import com.baomidou.mybatisplus.core.enums.IEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

/**
 * 订单状态
 *
 * 订单状态（-1 : 申请退款 -2 : 退货成功 0：未支付，待发货；1：待收货；2：已收货，待评价；3：已完成；4：已取消；）
 *
 * @Description:
 * @author daigb
 * @date 2021-01-15
 */
public enum OrderStatusEnum implements IEnum<Integer> {

    /**
     * -1 : 申请退款
     */
    APPLY_REFUND(-1, "退款申请中"),
    /**
     * -2 : 退货成功
     */
    REJECTED_SUCCESS(-2, " 退货退款"),
    /**
     * 0：未支付，待发货
     */
    UNPAID(0, "未支付"),

    /**
     * 1：待发货
     */
    NOT_SHIPPED(1, "待发货"),

    /**
     * 2：待收货；
     */
    SHIPPED(2, "待收货"),

    /**
     * 3：待评价；
     */
    RECEIVED(3, "待评价"),

    /**
     * 4：已完成；
     */
    COMPLETE(4, "已完成"),

    /**
     * 5：已取消；
     */
    CANCEL(5, "已取消"),

    /**
     * 6：待确认；
     */
    CONFIRM(6, "待确认"),

    /**
     * 7：待核实；
     */
    VERIFY(7, "待核实");

    private final Integer code;
    private final String msg;

    OrderStatusEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    @Override
    @JsonValue
    public Integer getValue() {
        return code;
    }

    @JsonCreator
    public static OrderStatusEnum valueOf(Integer code) {
        for (OrderStatusEnum value : values()) {
            if (code.equals(value.getCode())) {
                return value;
            }
        }
        return OrderStatusEnum.UNPAID;
    }
    public static String getMsgByCode(Integer code){
        for (OrderStatusEnum value : values()) {
            if (code.equals(value.getCode())) {
                return value.getMsg();
            }
        }
        return "";
    }

}

